#ifndef RNS_KEYCODE_MAPPING_H
#define RNS_KEYCODE_MAPPING_H
#include <iostream>
typedef enum rnsKey{
    /*
     * RCU KEYS
     */
    RNS_KEY_PowerOff,
    RNS_KEY_AudioMedia,
    RNS_KEY_Menu,
    RNS_KEY_AudioLowerVolume,
    RNS_KEY_AudioRaiseVolume,
    RNS_KEY_ChannelUp,
    RNS_KEY_ChannelDown,
    RNS_KEY_Help,
    RNS_KEY_Refresh,
    RNS_KEY_AudioStop,
    RNS_KEY_AudioPlay,
    RNS_KEY_AudioPause,
    RNS_KEY_AudioNext,
    RNS_KEY_AudioRewind,
    RNS_KEY_AudioForward,
    RNS_KEY_AudioPrev,
    RNS_KEY_Green,
    RNS_KEY_Red,
    RNS_KEY_Blue,
    RNS_KEY_Yellow,
    RNS_KEY_TvRad,
    RNS_KEY_AudioRecord,
    RNS_KEY_Aud,
    RNS_KEY_Cancel,
    RNS_KEY_Mute,
    RNS_KEY_Guia,
    //Navigation Keys
    
    RNS_KEY_Select,
    RNS_KEY_Up,
    RNS_KEY_Down,
    RNS_KEY_Right,
    RNS_KEY_Left,
    /*
     * KeyBoard Keys
     */
    /*Displayable Keys statart*/
    /*Numaric Key*/

    RNS_KEY_1,
    RNS_KEY_2,
    RNS_KEY_3,
    RNS_KEY_4,
    RNS_KEY_5,
    RNS_KEY_6,
    RNS_KEY_7,
    RNS_KEY_8,
    RNS_KEY_9,
    RNS_KEY_0,
    /*Upper case Alphabets*/
    RNS_KEY_A,
    RNS_KEY_B,
    RNS_KEY_C,
    RNS_KEY_D,
    RNS_KEY_E,
    RNS_KEY_F,
    RNS_KEY_G,
    RNS_KEY_H,
    RNS_KEY_I,
    RNS_KEY_J,
    RNS_KEY_K,
    RNS_KEY_L,
    RNS_KEY_M,
    RNS_KEY_N,
    RNS_KEY_O,
    RNS_KEY_P,
    RNS_KEY_Q,
    RNS_KEY_R,
    RNS_KEY_S,
    RNS_KEY_T,
    RNS_KEY_U,
    RNS_KEY_V,
    RNS_KEY_W,
    RNS_KEY_X,
    RNS_KEY_Y,
    RNS_KEY_Z,
    /*Lower case Alphabets*/
    RNS_KEY_a,
    RNS_KEY_b,
    RNS_KEY_c,
    RNS_KEY_d,
    RNS_KEY_e,
    RNS_KEY_f,
    RNS_KEY_g,
    RNS_KEY_h,
    RNS_KEY_i,
    RNS_KEY_j,
    RNS_KEY_k,
    RNS_KEY_l,
    RNS_KEY_m,
    RNS_KEY_n,
    RNS_KEY_o,
    RNS_KEY_p,
    RNS_KEY_q,
    RNS_KEY_r,
    RNS_KEY_s,
    RNS_KEY_t,
    RNS_KEY_u,
    RNS_KEY_v,
    RNS_KEY_w,
    RNS_KEY_x,
    RNS_KEY_y,
    RNS_KEY_z,
    RNS_KEY_Space,
    RNS_KEY_Grave,
    RNS_KEY_Asciitilde,
    RNS_KEY_Exclam,
    RNS_KEY_At,
    RNS_KEY_Numbersign,
    RNS_KEY_Dollar,
    RNS_KEY_Asciicircum,
    RNS_KEY_Ampersand,
    RNS_KEY_Asterisk,
    RNS_KEY_ParenLeft,
    RNS_KEY_ParenRight,
    RNS_KEY_Underscore,
    RNS_KEY_Shash,
    RNS_KEY_Period,
    RNS_KEY_Comma,
    RNS_KEY_Question,
    RNS_KEY_Apostrophe,
    RNS_KEY_Quotedbl,
    RNS_KEY_Semicolon,
    RNS_KEY_Colon,
    RNS_KEY_Bar,
    RNS_KEY_BackSlash,
    RNS_KEY_BraceLeft,
    RNS_KEY_BraceRight,
    RNS_KEY_BracketLeft,
    RNS_KEY_BracketRight,
        /*Arthematic */
    RNS_KEY_Minus,
    RNS_KEY_Equal,
    RNS_KEY_Percent,
    RNS_KEY_Plus,
    RNS_KEY_Greater,
    RNS_KEY_Less,
    /*Displayable Keys end*/
    //Delete and backSpace 
    RNS_KEY_Delete,
    RNS_KEY_Back,
    /*Modifer Keys chars*/
    RNS_KEY_Caps_Lock,
    RNS_KEY_Alt_L,
    RNS_KEY_Alt_R,
    RNS_KEY_Shift_L,
    RNS_KEY_Shift_R,
    RNS_KEY_Control_L,
    RNS_KEY_Control_R,
    /*Special char*/
    RNS_KEY_Tab,
    RNS_KEY_Page_Up,
    RNS_KEY_Page_Down,
    RNS_KEY_Escape,
    RNS_KEY_Home,
    RNS_KEY_EndKey,
    RNS_KEY_Insert,

    /*
     * Un mapped key
     */
    RNS_KEY_UnKnown,
    RNS_KEY_End
}rnsKey;

typedef enum rnsKeyAction{
    RNS_KEY_UnknownAction = -1,
    RNS_KEY_Press,
    RNS_KEY_Release
}rnsKeyAction;
static std::string RNSKeyMap[RNS_KEY_End]={
    "powerOff",
    "audioMedia",
    "menu",
    "audioLowerVolume",
    "audioRaiseVolume",
    "channelUp",
    "channelDown",
    "help",
    "refresh",
    "stop",
    "play",
    "pause",
    "next",
    "rewind",
    "fastForward",
    "previous",
    "green",
    "red",
    "blue",
    "yellow",
    "tvRad",
    "audioRecord",
    "aud",
    "cancel",
    "mute",
    "guia",
    //Navigation Keys
    "select",   
    "up",
    "down",
    "right",
    "left",
    /*
     * KeyBoard Keys.
     */
    /*Numaric Key*/
    "1",
    "2",
    "3",
    "4",
    "5",
    "6",
    "7",
    "8",
    "9",
    "0",
    /* Upper case Alphabets*/
    "A",
    "B",
    "C",
    "D",
    "E",
    "F",
    "G",
    "H",
    "I",
    "J",
    "K",
    "L",
    "M",
    "N",
    "O",
    "P",
    "Q",
    "R",
    "S",
    "T",
    "U",
    "V",
    "W",
    "X",
    "Y",
    "Z",
    /* Lower case Alphabets*/
    "a",
    "b",
    "c",
    "d",
    "e",
    "f",
    "g",
    "h",
    "i",
    "j",
    "k",
    "l",
    "m",
    "n",
    "o",
    "p",
    "q",
    "r",
    "s",
    "t",
    "u",
    "v",
    "w",
    "x",
    "y",
    "z",
    " ",
    "`",
    "~",
    "!",
    "@",
    "#",
    "$",
    "^",
    "&",
    "*",
    "(",
    ")",
    "_",
    "/",
    ".",
    ",",
    "?",
    "'",
    "\"",
    ";",
    ":",
    "|",
    "\\",
    "{",
    "}",
    "[",
    "]",
        /*
     * Arthematic Opps
     */
    "-",
    "=",
    "%",
    "+",
    ">",
    "<",
    //Delete and Back key
    "delete", 
    "back",
    /*Modfier Keys*/
    "capsLock",
    "altL",
    "altR",
    "shiftL",
    "shiftR",
    "controlL",
    "controlR",
    /*Special chars*/
    "tab",
    /*PageUP and PageUP*/
    "pageUp",
    "pageDown",
    "escape",
    "home",
    "end",
    "insert",
    "unKnown"
};
#endif// __RNSKeyCodeMapping_h__
